package com.android.webttest.utils;

import android.app.Activity;
import android.graphics.Color;
import android.os.Build;
import android.view.View;
import android.view.WindowInsets;
import android.view.WindowInsetsController;

public class StatusBarUtil {

    /**
     * 设置状态栏样式和行为（适用于 Android R 及以上版本）
     */
    public static void setImmersiveStatusBarR(Activity activity) {
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
            WindowInsetsController controller = activity.getWindow().getInsetsController();
            if (controller != null) {
                // 设置状态栏图标颜色为浅色（白色）
                controller.setSystemBarsAppearance(
                        WindowInsetsController.APPEARANCE_LIGHT_STATUS_BARS,
                        WindowInsetsController.APPEARANCE_LIGHT_STATUS_BARS
                );
                // 隐藏状态栏
                controller.hide(WindowInsets.Type.statusBars());
                // 设置系统栏行为
                controller.setSystemBarsBehavior(WindowInsetsController.BEHAVIOR_SHOW_TRANSIENT_BARS_BY_SWIPE);
            }
            // 取消使内容延伸到状态栏下方
            activity.getWindow().setDecorFitsSystemWindows(false);
        } else {
            // 回退到旧版设置
            setImmersiveStatusBarLegacy(activity);
        }
    }

    /**
     * 设置沉浸式状态栏（适用于 Android 10 及以下版本）
     */
    public static void setImmersiveStatusBarLegacy(Activity activity) {
        activity.getWindow().getDecorView().setSystemUiVisibility(
                View.SYSTEM_UI_FLAG_LAYOUT_STABLE
                        | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
        );
        activity.getWindow().setStatusBarColor(Color.TRANSPARENT);
    }
}